package com.neusoft.pub.cloud.provider.entity;

import com.neusoft.pub.cloud.provider.enums.ImportStateEnums;
import com.neusoft.pub.cloud.provider.enums.InstanceChargeType;
import com.neusoft.pub.cloud.provider.enums.InternetChargeType;
import com.neusoft.pub.cloud.provider.enums.PubVirtualMachineStateEnums;
import io.swagger.annotations.ApiModelProperty;

import java.util.List;

public class VirtualMachine {

    @ApiModelProperty(value = "地域id")
    private String regionId;

    /**
     * 数据中心id
     */
    private Integer dataCenterId;

    private String cloudPlatformName;

    private String regionName;

    private String zoneId;

    private String zoneName;

    private String instanceId;

    // 实例名称
    private String instanceName;

    // 主机名
    private String hostname;

    // 镜像ID
    private String imageId;

    // 规格ID
    private String instanceType;

    // VPC网络ID
    private String vpcId;

    // 子网/子交换机ID
    private String vSwitchId;
    /**
     * ip
     */
    private String ip;

    private Integer cpu;
    /**
     * 内存
     */
    private Integer memory;
    /**
     * 操作系统id
     */
    private String osId;
    /**
     * 操作系统名称
     */
    private String osName;

    private String imageName;
    /**
     * 当前使用带宽(峰值)
     */
    private Integer internetMaxBandwidthOut;

    private PubVirtualMachineStateEnums state;

    private String stateName;

    private String description;

    // 安全组ID
    private List<String> securityGroupIds;

    // 分配公网IP
    private Boolean publicIP;

    public Boolean getPublicIP() {
        return publicIP;
    }

    public void setPublicIP(Boolean publicIP) {
        this.publicIP = publicIP;
    }

    // 实例付费类型
    private InstanceChargeType instanceChargeType;

    // 公网IP付费类型
    private InternetChargeType internetChargeType;

    // 公网IP付费类型
    private String internetChargeTypeName;
    public InternetChargeType getInternetChargeType() {
        return internetChargeType;
    }

    public void setInternetChargeType(InternetChargeType internetChargeType) {
        this.internetChargeType = internetChargeType;
    }

    /**
     * 实例付费类型
     */
    private String instanceChargeTypeName;
    /**
     * 云平台id
     */
    private String platformResourceId;
    /**
     * 导入状态
     */
    private ImportStateEnums importState;

    private String importStateName;

    public String getDescription() {
        return description;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    // 系统盘
    private Disk sysDisk;

    public Disk getSysDisk() {
        return sysDisk;
    }

    public void setSysDisk(Disk sysDisk) {
        this.sysDisk = sysDisk;
    }

    public List<Disk> getDataDisk() {
        return dataDisk;
    }

    public void setDataDisk(List<Disk> dataDisk) {
        this.dataDisk = dataDisk;
    }

    // 数据盘
    private List<Disk> dataDisk;

    public String getRegionId() {
        return regionId;
    }

    public void setRegionId(String regionId) {
        this.regionId = regionId;
    }

    public String getZoneId() {
        return zoneId;
    }

    public void setZoneId(String zoneId) {
        this.zoneId = zoneId;
    }

    public String getInstanceId() {
        return instanceId;
    }

    public void setInstanceId(String instanceId) {
        this.instanceId = instanceId;
    }

    public String getInstanceName() {
        return instanceName;
    }

    public void setInstanceName(String instanceName) {
        this.instanceName = instanceName;
    }

    public String getImageId() {
        return imageId;
    }

    public void setImageId(String imageId) {
        this.imageId = imageId;
    }

    public String getInstanceType() {
        return instanceType;
    }

    public void setInstanceType(String instanceType) {
        this.instanceType = instanceType;
    }

    public String getVpcId() {
        return vpcId;
    }

    public void setVpcId(String vpcId) {
        this.vpcId = vpcId;
    }

    public String getvSwitchId() {
        return vSwitchId;
    }

    public void setvSwitchId(String vSwitchId) {
        this.vSwitchId = vSwitchId;
    }

    public List<String> getSecurityGroupIds() {
        return securityGroupIds;
    }

    public void setSecurityGroupIds(List<String> securityGroupIds) {
        this.securityGroupIds = securityGroupIds;
    }

    public InstanceChargeType getInstanceChargeType() {
        return instanceChargeType;
    }

    public void setInstanceChargeType(InstanceChargeType instanceChargeType) {
        this.instanceChargeType = instanceChargeType;
    }

    public Integer getDataCenterId() {
        return dataCenterId;
    }

    public void setDataCenterId(Integer dataCenterId) {
        this.dataCenterId = dataCenterId;
    }

    public String getIp() {
        return ip;
    }

    public void setIp(String ip) {
        this.ip = ip;
    }

    public Integer getCpu() {
        return cpu;
    }

    public void setCpu(Integer cpu) {
        this.cpu = cpu;
    }

    public Integer getMemory() {
        return memory;
    }

    public void setMemory(Integer memory) {
        this.memory = memory;
    }

    public String getOsId() {
        return osId;
    }

    public void setOsId(String osId) {
        this.osId = osId;
    }

    public String getOsName() {
        return osName;
    }

    public void setOsName(String osName) {
        this.osName = osName;
    }

    public String getImageName() {
        return imageName;
    }

    public void setImageName(String imageName) {
        this.imageName = imageName;
    }

    public Integer getInternetMaxBandwidthOut() {
        return internetMaxBandwidthOut;
    }

    public void setInternetMaxBandwidthOut(Integer internetMaxBandwidthOut) {
        this.internetMaxBandwidthOut = internetMaxBandwidthOut;
    }

    public PubVirtualMachineStateEnums getState() {
        return state;
    }

    public void setState(PubVirtualMachineStateEnums state) {
        this.state = state;
    }

    public String getStateName() {
        return stateName;
    }

    public void setStateName(String stateName) {
        this.stateName = stateName;
    }

    public String getPlatformResourceId() {
        return platformResourceId;
    }

    public void setPlatformResourceId(String platformResourceId) {
        this.platformResourceId = platformResourceId;
    }

    public String getHostname() {
        return hostname;
    }

    public void setHostname(String hostname) {
        this.hostname = hostname;
    }

    public String getInstanceChargeTypeName() {
        return instanceChargeTypeName;
    }

    public void setInstanceChargeTypeName(String instanceChargeTypeName) {
        this.instanceChargeTypeName = instanceChargeTypeName;
    }

    public ImportStateEnums getImportState() {
        return importState;
    }

    public void setImportState(ImportStateEnums importState) {
        this.importState = importState;
    }

    public String getImportStateName() {
        return importStateName;
    }

    public void setImportStateName(String importStateName) {
        this.importStateName = importStateName;
    }

    public String getRegionName() {
        return regionName;
    }

    public void setRegionName(String regionName) {
        this.regionName = regionName;
    }

    public String getZoneName() {
        return zoneName;
    }

    public void setZoneName(String zoneName) {
        this.zoneName = zoneName;
    }

    public String getInternetChargeTypeName() {
        return internetChargeTypeName;
    }

    public void setInternetChargeTypeName(String internetChargeTypeName) {
        this.internetChargeTypeName = internetChargeTypeName;
    }

    public String getCloudPlatformName() {
        return cloudPlatformName;
    }

    public void setCloudPlatformName(String cloudPlatformName) {
        this.cloudPlatformName = cloudPlatformName;
    }
}